1. Field of the Invention
The disclosure is related generally to a data processing system and in particular to a method and apparatus for provisioning software systems. More specifically, the present invention is directed to a computer implemented method, apparatus, and computer usable program code for provisioning software in a multi-tenant environment.
2. Description of the Related Art
Corporate data centers typically include a set of distributed servers interconnected by a network. A typical data center is a facility that houses computer systems and associated components, such as telecommunications and storage systems. The data center generally includes redundant or backup power supplies, redundant data communications connections, environmental controls, and special security devices.
A central purpose of a data center is running software applications that handle the core business and operational data of one or more tenants. A tenant may be a department within a company, or one of a group of companies that contract for the data center's server resources. The software applications may be proprietary and developed internally by an organization, or bought from enterprise software vendors. The software applications may include, for example, databases, file servers, application servers, middleware, and various others.
To reduce costs, data centers are increasingly concerned with improving the utilization of server resources. One technique for increasing utilization involves the re-assignment (and subsequent re-provisioning) of servers from one application or tenant experiencing a low demand to another application or tenant experiencing a high demand.
The Information Technology Infrastructure Library (ITIL) is a widely followed set of concepts and best practices for managing data centers. In ITIL, the configuration management database (CMDB) represents the conceptual repository of information related to the components of a data center. Following ITIL best practices, the process of provisioning involves inserting and updating entries stored in the CMDB. For example, servers, software, and the relationships between a particular server and the particular software provisioned on that server are all stored in the CMDB.
Provisioning a solution in a data center usually requires the installation and configuration of operating system and other software onto a server. Provisioning a server can be expedited by using automation tools. Examples of tools include IBM® Director Remote Deployment Manager (IDRDM), IBM® TIVOLI PROVISIONING MANAGER™ (ITPM), HP® OPENVIEW OS MANAGER USING RADIA™ (HPOV), and ACRONIS SNAP DEPLOY™ (ASD). IDRDM and ITPM are offered by INTERNATIONAL BUSINESS MACHINES CORP.®. HPOV™ is offered by HEWLETT PACKARD CO.®, and ASD is offered by ACRONIS, INC.®.
Several existing provisioning techniques (IDRDM, HPOV, and ASD) use a “push” approach to replicate a disk image containing the desired software system from a repository onto the target system. Other systems (ITPM) use software to externally automate the provisioning of software components once a base operating system has been installed.
The provisioning of a software system in a networked environment is a process that involves an initial step of booting a target system over the network instead of booting from directly attached storage. In this scenario, the network-booted operating system of the target system is then used to perform the unattended installation of the operating system and software components chosen for the target system. Prior works related to the unattended installation of an operating system over a network include IBM AIX® and SUN SOLARIS®. These systems utilize the Pre-boot Execution Environment (PXE) as defined by INTEL'S® Wired For Management specification. The PXE technology provides a computer with the ability to load and execute a network bootstrap program from a server on the network prior to or as an alternative to booting the operating system from directly attached storage.